<?php

/*
    realizzazione del customtype assegnazione

    questo va incluso nel file plugin che utilizza il post type
 */


// fissa gli hook
function wpf_assegnazione_hooks()
{
	register_activation_hook(__FILE__, 'wpf_assegnazione_rewrite_flush'); // serve per i permalink
	
	add_action('init', 'wpf_assegnazione_init');
    add_action('init', 'wpf_assegnazione_add_boxes');
    
 
// 	add_action('contextual_help', 'wpf_assegnazione_help_text', 10, 3); // genero l'help contestuale ai post, in amministrazione

	// modifico la visualizzazione dei custom-post
// 	add_filter('the_content', 'wpf_assegnazione_view'); // quando visualizzo il testo
// 	add_filter('the_title','wpf_progetto_title'); // quando visualizzo il titolo

	// genero la tabella per la visualizzazione dei fascicoli :
// 	add_filter('manage_wpf_progetto_posts_columns', 'wpf_progetto_list_column_header'); // aggiunge la colonna "azienda" alla lista dei fascicoli
// 	add_filter('manage_edit-wpf_progetto_sortable_columns', 'wpf_progetto_list_sort_columns'); // rende ordinabile per una colonna
// 	add_action('manage_wpf_progetto_posts_custom_column', 'wpf_progetto_list_column_row', 10, 2); // riempie la colonna azienda alla lista dei fascicoli
// 	add_filter('views_edit-wpf_progetto', 'wpf_progetto_link_list'); // per aggiungere link nella lista dei progetti

	// salvo i dati dei vari box creati
	//add_action('save_post', 'wpf_assegnazione_generale_save', 10, 2);

 	//add_action('the_post', 'wpf_assegnazione_extends'); // aggiunge al progetto i suoi customfields

// 	add_filter('wpf_progetto_available_statuses', 'wpf_filter_status');
}

// inizializza quello che serve
function wpf_assegnazione_init()
{
	// creazione del posttype
	$labels = array(
		'name' => __('Assegnazioni'),
		'singular_name' => __('Assegnazione'),
		'add_new' => __('Aggiungi nuova'),
		'add_new_item' => __('Nuova assegnazione'),
		'edit_item' => __('Modifica assegnazione'),
		'new_item' => __('Nuova assegnazione'),
		'all_items' => __('Tutte le assegnazioni'),
		'view_item' => __('Visualizza questa assegnazione'),
		'search_items' => __('Cerca una assegnazione'),
		'not_found' => __('Nessuna assegnazione trovata'),
		'not_found_in_trash' => __('Non ci sono assegnazioni nel cestino'),
		'parent_item_colon' => '',
		'menu_name' => 'Assegnazioni'
	);

	$args = array(
		'labels' => $labels,
		'public' => true,
		'publicly_queryable' => true,
		'show_ui' => true,
		'show_in_menu' => 'edit.php?post_type=wpf_risorsa',
		'query_var' => true,
		'rewrite' => array(
			'slug' => 'assegnazione'
		),
		'capability_type' => array(
			'assegnazione', 'assegnazioni'
		),
		'map_meta_cap' => true,
		'has_archive' => true,
		'hierarchical' => true,
		'menu_position' => null,
		'supports' => array(
			'title'
		)
	);

	register_post_type('wpf_assegnazione', $args);
}

function wpf_assegnazione_add_boxes()
{
	wpf_assegnazione_generale_box();
}

function wpf_assegnazione_stati_init()
{
	
}



// aggiunge alla assegnazione i suoi customtype
function wpf_assegnazione_extends($post)
{
	// solo in caso di assegnazione
	if ($post->post_type != 'wpf_assegnazione')
	{
		return;
	}

	$post->corso = get_post_meta($post->ID, 'corso',true);
	$post->spesa = get_post_meta($post->ID, 'spesa',true);
	$post->data_assegnazione = get_post_meta($post->ID, 'data_assegnazione',true);
	$post->data_conclusione = get_post_meta($post->ID, 'data_conclusione',true);
	$post->contratto = get_post_meta($post->ID, 'contratto',true);
	$post->ore = get_post_meta($post->ID, 'ore',true);
	$post->contratto = get_post_meta($post->ID, 'contratto',true);
	$post->importo_orario = get_post_meta($post->ID, 'importo_orario',true);
	$post->importo_totale = get_post_meta($post->ID, 'importo_totale',true);
	$post->responsabile = get_post_meta($post->ID, 'responsabile',true);
}

// serve per gestire i permalink
function wpf_assegnazione_rewrite_flush()
{
	wpf_assegnazione_init();
	flush_rewrite_rules();
}

function wpf_assegnazione_generale_box()
{
	global $post;
	global $wpf_domain;

	// Use nonce for verification
	wp_nonce_field(plugin_basename(__FILE__), 'wpf_assegnazione_noncename');

	$users_list = get_users('blog_id=1&orderby=nicename&role=manager');
	$users = '';

	foreach ($users_list as $user)
	{
		$users .= $user->user_login.',';
	}
	
	$partners_list = get_terms('partners', 'hide_empty=0');
    // admin_debug($partners_list, "Partners");
    $partners = '';
    foreach ($partners_list as $partner) $partners .= $partner->term_id.':'.$partner->name.',';

	$readonly = (!current_user_can('approve_assegnazioni')) && ($post->post_status != 'published');

	$form_fields = array(
			'corso' => array(
                'type' => ($readonly ? 'readonly' : 'select'),
                'values' => 'Corso|Corso A,Corso B,Corso C',
                'description' => __("Corso", WPF_DOMAIN ), 
                'howto' => __("Seleziona il corso", WPF_DOMAIN )
            ),
        	'spesa' => array(
                'type' => ($readonly ? 'readonly' : 'select'),
                'values' => 'Spesa|Spesa 1,Spesa 2,Spesa 3',
                'description' => __("Spesa", WPF_DOMAIN ), 
                'howto' => __("Seleziona la spesa", WPF_DOMAIN )
            ),
        	'data_assegnazione' => array(
                'type' => ($readonly ? 'readonly' : 'date'), 
                'description' => __("Data assegnazione", WPF_DOMAIN ), 
                'howto' => __("Inserisci qui la data di assegnazione", WPF_DOMAIN )
            ),
	    	'ore' => array(
                'type' => ($readonly ? 'readonly' : 'smalltext'),
                'description' => __("Ore", WPF_DOMAIN ), 
                'howto' => __("Inserisci la durata in ore", WPF_DOMAIN )
            ),
    	    'importo_orario' => array(
                'type' => ($readonly ? 'readonly' : 'smalltext'),
                'values' => $partners,
                'description' => __('Importo orario',WPF_DOMAIN),
                'howto' => __('Inserisci l\'importo orario', WPF_DOMAIN)
        	),
        	
    	);

	register_post_box('wpf_assegnazione', 'dati_assegnazione', 'Dati assegnazione', 'normal', 'core', $form_fields);

    register_post_parentbox('wpf_assegnazione', 'Contratto',wpf_get_query('contratti_tutti'),__("Contratto in base al quale � stata assegnata la risorsa", WPF_DOMAIN ));
        
}






function wpf_assegnazione_table()
{
	
}



wpf_assegnazione_hooks();

?>
